package com.sp.utils;

import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeException;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author tong
 * @date 2024/4/15 21:12
 */
public class QRUtil {

    /**
     * 将指定内容生成为二维码图片并保存到文件
     *
     * @param content  要生成二维码的内容
     * @param qrConfig 生成二维码的配置项，包括尺寸、颜色等
     * @param filePath 保存二维码图片的文件路径
     */
    public static void createCodeToFile(String content, QrConfig qrConfig, String filePath) {
        try {
            QrCodeUtil.generate(content, qrConfig, FileUtil.file(filePath));
        } catch (QrCodeException e) {
            e.printStackTrace();
        }
    }

    /**
     * 将指定内容生成为二维码并输出到响应流中
     *
     * @param content  要生成二维码的内容
     * @param qrConfig 二维码的配置信息，包括大小、颜色等
     * @param response HTTP响应对象，用于将生成的二维码作为图像直接输出到客户端
     */
    public static void createCodeToStream(String content, QrConfig qrConfig, HttpServletResponse response) {
        try {
            QrCodeUtil.generate(content, qrConfig, "png", response.getOutputStream());
        } catch (QrCodeException | IOException e) {
            e.printStackTrace();
        }
    }

}
